The invention relates to a distributed voice processing system, and more particularly to such a system comprising at least first and second components connected by an isochronous communications link.
In recent years telephone networks have started to provide increasingly sophisticated services, and this trend is likely to continue, for example with speech dialling (where the caller simply speaks in the name of a person who it is desired to call), and so on. In order to implement such advanced services, so-called Intelligent Peripherals (IPs) are required to provide the extra capability over and above the routing and billing functions of a traditional telephone network. These IPs are normally located at Service Nodes (SN) within the network. IPs can also be used at private installations, especially those which handle a large volume of incoming and/or outgoing calls.
IPs are used to provide enhanced services such as voice services, voice response, voice mail, fax mail, and other applications. Most IPs are based on voice processing units (or voice response units), and are usually restricted in capacity to handling typically between 100 and 200 channels. However, it is often required to have Service Nodes that support hundreds or even thousands of telephony channels, so that multiple voice processing units must be used. This requires an architecture suitable for combining the multiple voice processing units into a service node.
An example of a system having multiple voice processing units is disclosed in U.S. Pat. No. 5,029,199, which describes a voice messaging system for use in the telephone network or at a large private installation. This system includes multiple voice processing units, a digital switch and a master control unit. The voice processing units have a digital T1 trunk connection to the switch for telephony channels (or an E1 connection where appropriate), whilst the voice processing units, digital switch, and master control unit are also connected together via a data control bus, such as an Ethernet. Notification of an incoming call initially arrives at the master control unit, which selects an appropriate voice processing unit to handle the call (based for example on current loading of the units, or the called or calling number), and sends an appropriate instruction to the switch. Then, when the incoming call itself arrives at the switch, it is routed to the selected voice processing unit. If necessary, the selected voice processing unit can retrieve the appropriate greeting or a stored message belonging to the caller from another voice processing unit over the data control bus.
A somewhat similar system is described in U.S. Pat. No. 5,394,460, in which multiple voice processing systems are connected by a Fibre Distributed Data Interface (FDDI). This system does not have a master control unitxe2x80x94each voice processing unit can handle calls in a suitable manner for any subscriber to the system, including retrieving, where necessary, a subscriber greeting and messages from the other voice processing unit(s) over the FDDI link. xe2x80x9cConversant 1 voice system: Architecture and Applicationsxe2x80x9d, by R Perdue and E Rissanen, in ATandT Technical Journal, September/October 1986, Vol 65/5, p34-47 describes a system where multiple subsystems provide eg voice response, isolated word recognition etc, are connected to a switch so that they can be shared between calls. A line interface unit is interposed between the switch and the telephone network. The subsystems and line interface unit are also attached via a general-purpose interface bus, which runs an application to control overall system operation, invoking the facilities of subsystems when necessary. This system effectively operates as a single, multi-function IP, and so is limited in its overall call processing capabilities.
An example of the use of an IP installation is illustrated in FIG. 1, which acts as a Service Node 10 within the telephone network. Thus calls are routed to the service node from within the telephone network 5 via multiple trunk lines 15, such as T1 digital trunk lines, which each carry twenty-four individual telephony channels. The incoming trunk lines arrive at a switch 20, which has a set of line interface (LI) units 22, such that each incoming trunk line is terminated by a corresponding LI unit. Usually this switch is a programmable, time-division multiplex (TDM) switch, which allows host-controlled routing of incoming calls to a selected voice processing unit, and host-controlled bridging between calls. The line interface units can be used to perform a variety of functions, such as analog to digital conversion (not necessary if T1 trunks are used), signalling, DTMF detection, and so on.
The back end of the switch is connected to multiple voice processing units 50A, 50B via a further set of digital trunk lines 45, which typically are also T1 trunks. A pair of line interface units are provided at opposite ends of each internal digital trunk line 45, the first line interface unit 24 being at the back end of the switch, and the second line interface unit 52 being attached to the voice processing unit to which the trunk is connected. The voice processing units 50 contain multiple voice resources 55, which can be used for example to play voice prompts, perform voice recognition, FAX-back etc, depending on the desired service. The line interface units 52 are connected to the voice resources 55 via a TDM bus 54. Often this connection is hardwired so that calls on a particular line interface unit are always directed to the same voice resource. Overall control of a call at the voice processing unit is provided by one or more applications 60 running on the 15 voice processing unit. The application determines, for example, which voice prompts to play, and in which order.
The switch routes the incoming call from trunk line to an appropriate voice processing unit under the control of a Call Manager 30 (also termed the host). The Call Manager is connected to the switch 20 by a first control interface 35 (typically provided either by a LAN connection or some switch-dependent hardware link), and to the voice processing units 50 by a second control interface 36 (typically a LAN connection). The Call Manager uses the second control interface to communicate with the voice processing units 50, via a call manager component 62 on each voice processing unit.
The routing decision of the Call Manager can be based on various criteria. For example, the caller may have personal information (eg a voice mail message or greeting) stored on a particular voice processing unit, or may require a special service (eg use of specialised voice recognition hardware). This routing is often performed based on Automatic Number Identification and/or Dialled Number Identification Service (ANI/DNIS) information, the former representing the calling number, the latter the called number. This ANI/DNIS information (if available) is supplied to the Call Manager from the telephone network via switch 20 over control interface link 35. Other information might also be employed to establish the routing, such as time of day, and/or current loading of the different end units. This latter information can be obtained by the Call Manager directly from the different call manager components on their respective voice processing units. The second control interface 36 also allows the Call Manager to pass information (such as ANI/DNIS) via the call manager component 62 to the application 60 on the voice processing unit which is to receive a particular call, so that this information is available if desired in order to process the call.
Once the Call Manager has instructed the switch of a suitable destination for the incoming call, the switch effects this routing by completing the appropriate internal connections. This involves routing the call from a channel on an incoming trunk 15 through to an available channel on an appropriate one of the internal trunk lines 45 for connection with a desired voice processing unit 50. The call is then passed through the relevant line interface unit 52 and TDM bus 54, before being handled by the appropriate voice resource 55 under the control of application 60.
It will be appreciated that the Call Manager of FIG. 1 performs an analogous function to the master control unit in the above-mentioned U.S. Pat. No. 5,029,199, (the fact that the Call Manager is connected to the telephone network via the switch whereas the master control unit is connected directly to the network simply reflects the type of signalling supported by the network and the capabilities of the switch; the appropriate configuration will vary from one installation to another).
Aside from forwarding incoming calls to a selected voice processing unit, the Service Node 10 may be provided with additional capabilities. For example, calls may be bridged by connecting a first line coming into the switch from the telephone network with a second line going back out to the telephone network from the switch. This may be performed for example to provide some form of conferencing service, or for applications which provide a single number service, or a calling card service, where an incoming caller needs to be connected with a second, outbound, call. Furthermore, some applications running on the voice processing unit may be essentially outbound rather than inbound, as so far described; ie they produce outgoing calls from the Service Node through switch 20, out into telephony network 5.
Prior art systems, such as that illustrated in FIG. 1, suffer from the major disadvantage that they are expensive to implement, not least because of the need for a switch. Thus the entry cost of a typical switch is somewhere in the range from $50,000 to $100,000, and is unlikely to drop significantly in the future, firstly because such switches use proprietary architectures, and will never be manufactured in large volumes, and also because of the large amount of telephony line interface hardware which is required, both on the telephone network side for trunks 15, and also on the voice processing side for trunks 45. Yet a further set of telephony line interface hardware is then required for the voice processing systems themselves.
Furthermore, the prior art solution illustrated in FIG. 1 also provides only limited scalablity, since a single switch is often limited to around 2000 telephony channels (ie 1000 network connected telephony channels, since an equivalent number of channels are generally required on the voice processing side of the switch). It is of course possible to employ multiple switches, but this adds to the software complexity of the installation, resulting in greater development and maintenance costs.
A rather different approach to that of FIG. 1 is disclosed in WO 90/04298, which describes a telephony processing system having one or more T1 interface units, one or more signal processing units that can provide functions such voice response, text-to-speech, and so on, and a control processor. These components are linked together by a control bus (a multibus). The T1 interface units and the signal processing units are also linked together by a telephony bus. It is the responsibility of the control processor to send instructions over the multibus to ensure that an incoming call at a particular interface unit is placed onto the telephony bus, and then correctly extracted from the telephony bus by the appropriate signal processing unit. This arrangement obviates the need for a switch, but is essentially limited in size to a single machine.
Other systems which do not require a switch are described in xe2x80x9cThe Surging CTI Tidexe2x80x9d by Bob Emmerson and David Greetham, in Byte magazine, Novermber 1996. This article discloses a PC-based call handling system, in which one card is used as a line interface card, one as a FAX card, one to provide voice response functionality, and so on. These cards are linked together by a telephony time division multiplex bus (TDM), in addition to being plugged into the conventional PC ISA or PCI bus. Most commercial telephony TDM buses conform to one of two standards: either Multi-vendor Integration Protocol (MVIP), or Signal Computing System Architecture (SCSA).
One acknowledged limitation on such systems is that they are rather restricted in terms of the number of calls which they can handle; typically 512 ports on a single machine, or 768 ports by interconnecting multiple PCs using a multi-chassis bus. One possibility is to use an SCxbus plus appropriate adapters to connect SCSA systems together (see for example the SCxbus adapter cards available from Dialogic Corporation, advertised at http:://www.dialogic.com/products/d_sheets/2335WEB.htm), but such a solution is still limited in terms of overall capacity and also flexibility.
It is also briefly suggested in the above-mentioned article from Byte magazine that the size limitation can be overcome by using asynchronous transfer mode (ATM) technology, although no details are provided. It seems likely that this suggestion either implies replacing the TDM bus altogether with an ATM link (which would allow a very flexible use of hardware, but would not be compatible with currently available systems), or else using ATM links between machines to effectively increase the length of the TDM bus (ie as a direct replacement for a multi-chassis TDM bus).
An example of a computer-telephony system using ATM is described in xe2x80x9cSpawn of NT and ATM: The Un-PBXxe2x80x9d by Ed Margulies in Computer Telephony, November 1996, pages 72-84. Here there is a direct ATM link between the desktop and an ATM server, which in turn is connected via a telephony bus to a line interface card, FAX card, etc. This use of ATM allows integration of desktop voice and data services.
Whilst the prior art does offer a wide range of telephony systems and enhanced services, the demand for such services continues to increase, and new services are also being developed. The prior art does not provide a fully flexible architecture, which can be easily extended to provide a very large call handling capacity that can support such enhanced services.
Accordingly, the invention provides a distributed voice processing system comprising at least first and second systems connected by an isochronous network,
said first system including:
a plurality of telephony interface ports connected to respective telephony channels;
a first time division multiplex (TDM) bus attached to said plurality of telephony interface ports; and
a first interface adapter attaching said first time division multiplex bus to said isochronous network;
said second system including:
a second time division multiplex bus;
a second interface adapter attaching said second time division multiplex bus to said isochronous network; and
an application processor unit which can access data on said second time division multiplex bus.
In such a system, calls which arrive at the first system can be handled in a distributed manner, by using the telephony port at the first system and the application processor unit at the second system, with any necessary telephony data being passed between the systems over the isochronous network. This facility avoids having to initially direct calls to a particular system (typically a voice processing unit), and so obviates the need for a telephony switch interface to the telephone network. Instead, the isochronous network is used, effectively behind the systems, to route telephony data between the different systems of the distributed voice processing system. This is much cheaper than using a conventional telephone switch, because standard data connections can be used, rather than expensive telephony switching and interface equipment. Moreover, the switching complexity can be reduced dependent on the number of systems, rather than the number of telephony ports. The application processor unit typically comprises a voice resource under the control of an application program.
In the preferred embodiment, said isochronous network is an ATM network, although other suitable networks such as isoEthernet might also be used. In the currently preferred embodiment, the ATM network is configured to provide permanent virtual circuits between said at least first and second systems, to avoid the need to have to specifically switch each call (instead, calls can simply be routed onto an existing virtual circuit). One advantage of ATM is that it is not restricted in terms of the bandwidth allocated to any single call; in other words, in principle video calls could also be supported for example, although this will depend on the capabilities of the TDM bus.
The first and second interface adapters selectively couple a timeslot on the first TDM bus to a timeslot on the second TDM bus via said isochronous network. In other words, only selected channels from the first TDM bus appear on the second TDM bus. This is important in maintaining complete flexibility in call handling, and in maximising the call handling capacity of the system (which would otherwise be constrained by the capacity of the TDM bus).
The invention further provides a method of processing a call in a distributed voice processing system comprising at least first and second systems connected by an isochronous network, said call being handled by a telephony interface port at said first system, said method including the steps of:
determining that the call should be handled by an application processor unit on said second system;
establishing a connection between said telephony interface port on said first system and said application processor unit on said second system via said isochronous network;
receiving telephony input and/or transmitting a telephony signal over said connection at/from said application processor unit to handle said call.
In the preferred embodiment, said first and second systems each include a TDM bus, and said connection includes a telephony signal route from the telephony interface port at the first machine onto the TDM bus at the first machine, over said isochronous network, onto the TDM bus at said second system, and from there to said application processor unit. Said first and second systems each include an adapter card for transferring data between the TDM bus on that system and the isochronous network.
It is also preferred that said step of determining comprises:
sending a request to a call manager;
receiving a response from the call manager indicating that the call should be handled by an application processor unit on a specified system;
and the Call Manager sending an instruction to the specified system indicating that it is to handle the call.
In some applications the method may also include the application processor unit, in handling the call, accessing a database via the isochronous network. Thus the use of a network such as ATM which supports both voice and data communications leads to a very flexible and powerful architecture, yet one which is relatively simple (ie there is no need to support one network for voice communications, and a separate network for data communications for remote database access).
The invention further provides a method of simultaneously processing first and second calls in a distributed voice processing system comprising at least first, second, and third systems connected by an isochronous network, said first and second calls being handled by first and second telephony interface ports respectively at said first system, said method including the steps of:
determining that the first call should be handled by an application processor unit on said second system, and the second call should be handled by an application processor unit on said third system;
establishing a first connection between said first telephony interface port on said first system and said application processor unit on said second system via said isochronous network;
establishing a second connection between said second telephony interface port on said first system and said application processor unit on said third system via said isochronous network;
receiving telephony input and/or transmitting a first telephony signal over said connection at/from said application processor unit on the second system to handle said first call; and
receiving telephony input and/or transmitting a second telephony signal over said connection at/from said application processor unit on the third system to handle said second call.
The invention further provides a distributed telephony switch comprising at least first and second systems connected by an isochronous network,
said first system including:
a first plurality of telephony interface ports connected to a first plurality of telephony channels;
a first time division multiplex (TDM) bus attached to said plurality of telephony interface ports; and
a first interface adapter attaching said first time division multiplex bus to said isochronous network;
said second system including:
a second time division multiplex bus;
a second interface adapter attaching said second time division multiplex bus to said isochronous network; and
a second plurality of telephony interface ports connected to a second plurality of telephony channels.
Such a distributed switch can be made from relatively standard components, and so fabricated much more cheaply than conventional telephony switches. Moreover, it can be easily scaled to handle large numbers of telephony ports, without significantly adding to hardware or software complexity.